The most common structures for storing computer data revolve around files stored in containers called “folders.” Most common operating systems, such as the MICROSOFT WINDOWS operating system, employ similar data structures, and they are widely used by the general population.
In a typical directory structure, files and folders are arranged in a hierarchical tree. At the top of the tree, or otherwise the narrowest part of the tree, a root directory may be provided, which may be, for example, the address of a specific drive. (For example, in WINDOWS systems, the root directory is typically “C:\”.) Folders and files may then be arranged within the root directory, and subfolders and files may be arranged within the folders of the root directory, and so on and so forth. (For example, in WINDOWS systems, the root directory may contain the “\Program Files” and the “\Windows” folders, while the “\Windows” folder may contain the “\System” folder.) Folders may be separated from one another by a directory separator, commonly “\” or “/”.
Typical directory structures store the locations of files using a path name. The path name may be a pointer to a file system location expressed in a string of characters in which path components are separated by the directory separator. For example, in the WINDOWS systems provided above, an example path might be the string “C:\Windows\System”.
However, various problems exist with this sort of directory structure. For example, it can often be difficult to organize unorganized data into such a file structure. Further, such a directory structure generally has no inherent way to represent interrelationships between a file in a first location and a file in a second, different location. This makes manipulation of and reorganization of the data structure each more difficult. For example, in a typical directory structure, a user who wishes to make changes to a particular type of file or files under a particular directory heading may have to make such changes individually, consuming significant amounts of time and increasing the potential for mistakes.